<?php
class AuthController extends BaseController{
	public function getLogin() {
		return View::make("backend.login")->with("title","Login");
	}

	public function postLogin() {
		//dùng valid của laravel để kiểm tra
		$valid = Validator::make(Input::all(),User::$user_rules,User::$user_langs);

		if ($valid->passes()) {
			try{
				$dataLogin = array(
					"username"	=>	Input::get('username'),
					"password"	=>	Input::get('password')
				);

				Sentry::Authenticate($dataLogin,false);
				return Redirect::route("index")->with("success","Đăng nhập thành công");

			} catch (Cartalyst\Sentry\Users\WrongPasswordException $e) {

				return Redirect::route('login_get')->with('error','Mật khẩu không chính xác');

			} catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {

				return Redirect::route('login_get')->with('error','Tên truy cập không tồn tại');

			}
		} else {
			return Redirect::route('login_get')->with('error',$valid->errors()->first());
		}
	}
	public function getLogout() {
		Sentry::logout();
		return Redirect::route("login_get")->with("error","Đăng xuất thành công");
	}

	public function getRegister() {
		$user = User::all();
		
		return View::make("backend.user.list")->with("title","Danh sách thành viên")->with("users",$user);
	}

	public function getAddRegister() {
		return View::make("backend.user.add")->with("title","Thêm thành viên");
	}

	public function postAddRegister() {
		$valid = Validator::make(Input::all(),User::$register_rule,User::$user_langs);

		if ($valid->passes()) {
			$dataInsert = array(
				"first_name"	=>	Input::get("first_name"),
				"last_name"		=>	Input::get("last_name"),
				"email"			=>	Input::get("email"),
				"username"		=>	Input::get("username"),
				"password"		=>	Input::get("password"),
				"activated"		=>	1,
			);

			Sentry::getUserProvider()->create($dataInsert);
			return Redirect::route("register_get")->with("success","Thêm thành viên thành công");

		}else {
			return Redirect::route("registeruser_get")->with("error",$valid->errors()->first());
		}
	}

	public function postDeleteUser($id) {
		$user = User::find($id);
		
		$user->delete();
		return Redirect::route("register_get")->with("success","Xóa thành công");
		
	}

	public function getChangepassword() {
		return View::make("backend.user.changepassword")->with("title","Thay đổi mật khẩu");
	}

	public function postChangepassword() {
		$valid = Validator::make(Input::all(),User::$changepassword_rule,User::$user_langs);

		if ($valid->passes()) {
			try{
				$user = Sentry::findUserByCredentials(array(
					"username"	=>	Sentry::getUser()->username,
					"password"	=>	Input::get("oldpassword")
				));

				$user->password = Input::get("newpassword");
				$user->save();
				return Redirect::route("changepassword_get")->with("sucess","Đổi mật khẩu thành công");

			} catch (Cartalyst\Sentry\Users\WrongPasswordException $e){
				return Redirect::route("changepassword_get")->with("error","Mật khẩu cũ không chính xác");
			}
		} else {
			return Redirect::route("changepassword_get")->with("error",$valid->errors()->first());
		}
	}
}